[70-536]

Preparazione all'esame [70-536]

[70-536] Errata Corrige

Segnalo, sempre utile: http://support.microsoft.com/default.aspx/kb/923018/en-us Secondo me poi si sono stancati...   Technorati tags: [70-536]

[70-536] Compressing Streams

Lesson 3 Compressing Streams Alcune volte è necessario comprimere uno stream per risparmiare spazio o banda: ci aiutano le classi GZipStream e DeflateStream. Entrambe si limitano a comprimere dati fino a 4GB. La differenza tra le due è che la prima permette l'introduzione di determinati header per includere informazioni extra utili alla decompressione dello stream. Ne deriva che il file scritto con DeflateStream è più piccolo. Per comprimere: FileStream sourceFile = File.OpenRead(inFileName); FileStream destinationFile = File.Create(outFileName); GZipStream compStream = new GZipStream(destFile, CompressionMode.Compress); int theByte = sourceFile.ReadByte(); while(theByte != -1) { compStream.WriteByte((byte)theByte); theByte = sourceFile.ReadByte(); } Per decomprimere: FileStream sourceFile = FileOpenRead(inFileName); FileStream destinationFile = File.Create(outFileName); GZipStream compStream = new GZipStream(sourceFile, CompressionMode.Decompress); int theByte = compStream.ReadByte(); while(theByte != -1) { destFile.WriteByte((byte)theByte); theByte =...

[70-536] Reading and writing files

Lesson 2 Reading and writing files Questo argomento si apre parlando della classe Stream e delle classi derivate: FileStream MemoryStream CryptoStream NetworkStream GZipStream Ci sono altre classi correlate come File e Directory (entrambe statiche), FileAccess (enum con Read, Write and ReadWrite), FileMode (enum con Append, Create, CreateNew, Open, OpenOrCreate, Truncate - CreateNew rilancia eccezione se il file esiste, Open rilancia eccezione se il file non esiste, Truncate svuota il file). Per leggere da un file: FileStream theFile = File.Open(@"C:\boot.ini", FileMode.Open, FileAccess.Read); StreamReader sr = new...

[70-536] Input/Output

Lesson 1 Input/Output Tutto parte dal namespace System.IO. Abbiamo classi che derivano da FileSystemInfo (FileInfo e DirectoryInfo a cui si aggiunge DriveInfo che non deriva da questa) per avere informazioni circa l'input/output e classi di utilità come File, Directory, Path. Da queste classi è possibile effettuare tutte le più comuni operazioni su file e directory. A queste classi si aggiunge il FileSystemWatcher per monitorare cambiamenti nel file system. Da ricordare che il cambio di estensione è logico e non fisico! Technorati tags: [70-536]

[70-536] Converting between types

Lesson 4 Converting between types Il Framework può convertire automaticamente i built-in types. Le conversioni di tipo widening sono permesse implicitamente in C# e VB. Quelle di tipo narrowing richiedono la conversione esplicita in C#. Si chiama Boxing il passaggio da value type a reference type mentre Unboxing viceversa. Entrambi comportano overhead e sarebbero da evitare, soprattutto in cicli. Si verifica boxing anche quando si chiamano metodi virtuali di una struct che eredita da System.Object (come ToString). Le conversioni possono avvenire: Definendo operatori di conversione (nuovi del .Net 2.0); Sovrascrivendo ToString() e Parse() per conversioni a stringa e...

[70-536] Constructing classes

Lesson 3 Constructing classes Niente da dire su ereditarietà, le interfacce sono un contratti tra le classi che le implementano (importanti IComparable, IDisposable, IConvertible, ICloneable...). Classi parziali per suddividere le classi su più files (prime fra tutte quelle di designer del Framework). Generics buoni per ridurre gli errori di run-time e migliorare le performances, nuovi del Framework 2.0, sostituiscono gli Object di uso precedente. Su questi si possono anche definire dei vincoli (implementa un'interfaccia, deriva da una classe specifica, implementazioni di costruttori con meno parametri, essere di un certo value-type o reference-type). Occhio che EventHandler è un nuovo tipo di built-in Generics. L'evento è...

Full [70-536] Archive